1955E - Long Inversions - CodeForces Solution


brute force greedy implementation sortings

Please click on ads to support us..

Python Code:

def isPossible(list, k):
    inverts = [False for _ in list]

    inverted = False
    for i in range(len(list)-k):
        if inverts[i]:
            inverted = not inverted

        v = list[i]
        if inverted:
            v = not v

        if not v:
            inverts[i+k] = True
            inverted = not inverted

    zeroes = False
    ones = False
    for i in range(len(list)-k, len(list)):
        if inverts[i]:
            inverted = not inverted

        v = list[i]
        if inverted:
            v = not v

        if v:
            ones = True
        else:
            zeroes = True

    return not(zeroes and ones)
            
def solve():
    n = int(input())
    l = list( map(lambda x: True if x=='1' else False, input()))
    
    best = 0
    for i in range(1,n+1):
        if isPossible(l, i):
            best = i

    print(best)

testCases = int(input())

for i in range(testCases):
    solve()


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST